Method and apparatus for selectively retrieving information from a source computer using a terrestrial or satellite interface

ABSTRACT

A requesting terminal includes an interface that allows a user to select whether data downloaded from a network (such as the Internet) is transmitted to the requesting terminal via a high-speed link, such as a satellite link, or a lower speed link, such as a terrestrial link. Preferably, the terrestrial link (which may comprise a conventional dial-up Internet connection) is a two-way link, wherein the requesting terminal transmits data requests to the network via the terrestrial link. The data requests generated by the requesting terminal are modified to designate whether the requested data should be downloaded from the network via the terrestrial link or the satellite link. The terrestrial link may also be automatically selected for certain applications.

RELATED APPLICATIONS

This application is a continuation of application Ser. No. 09/216,576filed Dec. 18, 1998, now U.S. Pat. No. 6,115,750, which is a division ofapplication Ser. No. 08/797,505 filed Feb. 7, 1997, U.S. Pat. No.5,852,721, which is a continuation-in-part of application Ser. No.08/257,670 filed Jun. 8, 1994, now abandoned.

BACKGROUND OF THE INVENTION

This application relates to a computer network and, more specifically,to a method and apparatus for allowing both high-speed and regular-speedaccess to a computer network.

The Internet is an example of a TCP/IP network. The Internet has over 10million users. Conventionally, access to the Internet is achieved usinga slow, inexpensive method, such as a terrestrial dial-up modem using aprotocol such as SLIP (Serial Line IP), PPP, or by using a fast, moreexpensive method, such as a switched 56 Kbps, frame relay, ISDN(Integrated Services Digital Network), or T1.

Users generally want to receive (download) large amounts of data fromnetworks such as the Internet. Thus, it is desirable to have a one-waylink that is used only for downloading information from the network. Atypical user will receive much more data from the network than he sends.Thus, it is desirable that the one-way link be able to carry largeamounts of data very quickly. What is needed is a high bandwidth one-waylink that is used only for downloading information, while using a slowerone-way link to send data into the network.

Currently, not all users have access to high speed links to networks.Because it will take a long time to connect all users to networks suchas the Internet via physical high-speed lines, such as fiber opticslines, it is desirable to implement some type of high-speed line thatuses the existing infrastructure.

Certain types of fast network links have long propagation delays. Forexample, a link may be transmitting information at 10 Mbps, but it maytake hundreds of milliseconds for a given piece of information to travelbetween a source and a destination on the network. In addition, for evenfast low-density links, a slow speed return-link may increase the roundtrip propagation time, and thus limit throughput. The TCP/IP protocol,as commonly implemented, is not designed to operate over fast links withlong propagation delays. Thus, it is desirable to take the propagationdelay into account when sending information over such a link.

SUMMARY OF THE INVENTION

A first embodiment of the present invention overcomes the problems anddisadvantages of the prior art by allowing a user to download data usinga fast one-way satellite link, while using a conventional low-speedInternet connection for data being sent into the network.

A second embodiment of the present invention allows a user to specifyfor certain applications that data be downloaded from the Internet via aterrestrial link, rather than the satellite link.

According to one aspect of the present invention, a system forretrieving data from a source computer coupled to a network comprises alow-speed path linking a requesting terminal with the network, ahigh-speed path linking the requesting terminal with the network, andmeans for selecting either the low-speed path or the high-speed path fortransmission of data from the source computer to the requestingterminal. In a preferred embodiment, the low-speed path is a terrestriallink, wherein the terrestrial link is a two-way link between therequesting terminal and the network comprising a serial port in therequesting terminal in communication with a SLIP provider connected tothe network. The high-speed path is a satellite link, wherein thesatellite link is a one-way link comprising a gateway connected to thenetwork wherein data retrieved from the source computer is provided tothe gateway via the network and transmitted to the requesting terminalvia the satellite link. The requesting terminal generates a data requestpacket that is sent to the source computer via the terrestrial link. Theselection means comprises a driver in the requesting terminal thatmodifies the request packet to specify either the low-speed path or thehigh-speed path. The selection means may also include a user interfacein the requesting terminal that allows a user to specify that certainapplications use the low-speed path.

According to another aspect of the present invention, a system forretrieving data from a source computer coupled to a network comprises arequesting terminal for requesting data to be retrieved from the sourcecomputer. The requesting terminal includes a terrestrial interfacecoupled to the network, and a satellite interface capable of receivingdata transmitted via satellite link, wherein the satellite link includesa gateway coupled to the network. The requesting terminal furtherincludes means for designating that the requested data be transmittedfrom the source computer to the requesting terminal through either theterrestrial interface or the satellite interface.

According to yet another aspect of the present invention, a method ofretrieving data from a source computer coupled to a network comprisesthe steps of generating, at a requesting terminal, a request packet fortransmission of data from the source computer, designating, at therequesting terminal, a transmission path selected from either alow-speed path (such as a terrestrial link) or a high-speed path (suchas a satellite link) for transmission of the requested data from thesource computer to the requesting terminal, providing the designateddata request to the source computer, wherein the source computergenerates a data reply, and receiving the data reply from the sourcecomputer via the designated transmission path.

Objects and advantages of the invention will be set forth in part in thedescription which follows and in part will be obvious from thedescription or may be learned by practice of the invention. The objectsand advantages of the invention will be realized and attained by meansof the elements and combinations particularly pointed out in theappended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate several embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention.

FIG. 1 is a hardware block diagram of a preferred embodiment of theinvention;

FIG. 2 is a diagram of a portion of a hybrid terminal of FIG. 1;

FIG. 3 is a diagram showing an IP packet format;

FIG. 4 is a diagram showing a plurality of packet formats, including anEthernet packet format;

FIG. 5 is a diagram showing a tunneling packet format;

FIG. 6 is a diagram of steps performed by the hybrid terminal of FIG. 1;

FIG. 7 is a diagram showing an example of partial data in a tunnelingpacket;

FIG. 8 is a flowchart of steps performed by the hybrid terminal of FIG.1;

FIG. 9 is a diagram of steps performed by a hybrid gateway of FIG. 1;

FIG. 10 is a diagram showing a format of packets sent to a satellitegateway of FIG. 1;

FIG. 11 is a diagram showing a TCP packet format;

FIG. 12 is a ladder diagram showing packets sent from an applicationserver to the hybrid gateway and from the hybrid gateway to the hybridterminal over a satellite link;

FIGS. 13(a) through 13(e) are flowcharts of steps performed by thehybrid gateway of FIG. 1;

FIG. 14 is a diagram of an example of a graphical user interface whichallows a user to select applications that will use a terrestrial link,rather than the satellite link, for downloading data;

FIG. 15 is a simplified hardware block diagram of the present inventionillustrating satellite and terrestrial request and reply paths;

FIG. 16 is a block diagram illustrating the transfer of data packetsbetween components of the hybrid terminal; and

FIGS. 16A-16E are diagrams of the data packets represented in FIG. 16.

FIGS. 17 and 18 are figures from the Phase A Data Sheet incorporatedherein.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to the preferred embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. Wherever possible, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts.

I. SATELLITE LINK

According to a first embodiment of the present invention, allinformation downloaded from the Internet is received via a high speedsatellite link, as described in detail below.

a. General Overview

A preferred embodiment of the present invention uses satellitetechnology to implement a high-speed one-way link between a user'scomputer and a TCP/IP network, such as the Internet or a private TCP/IPnetwork. This high-speed link is used to download data from the network.The user's computer also has a conventional TCP/IP link for sending datato the network. The invention can use various forms of high-speed,one-way links, such as satellites and cable television lines. Theinvention can use various forms of low-speed networks, such as TCP/IPnetworks, dialup telephones, ISDN D-channel, CPDP, and low-speedsatellite paths.

The described embodiment of the present invention uses satellites toprovide a high-speed one-way link. Satellites can cover largegeographical areas and are insensitive to the distance between atransmitter and a receiver. In addition, satellites are very efficientat point-to-point and broadcast applications, and are resilient andresistant to man-made disasters. Two-way satellites are expensive touse, however, because of the costs involved in purchasing and installingthe satellite earth station hardware. In the past, these costs haveplaced satellite communications outside the reach of the consumer.

The present invention allows a personal computer to receive downloadedinformation from the network via a satellite at a very practical cost.In the present invention, the cost of satellite communications isreduced because a one-way satellite link is used. Receive-only earthstation equipment is cheaper to manufacture because it requires lesselectronics than send/receive antennae.

As is well-know in the art, communication over the Internet and similarTCP/IP networks is achieved through a group (suite) of protocols calledTransmission Control Protocol/Internet Protocol (TCP/IP). The TCP/IPprotocol is described in the book “Internet working With TCP/IP, VOL I”by Douglas Comer, published by Prentice-Hall, Inc., of Englewood Cliffs,N.J., 1991, which is incorporated by reference.

b. Hybrid TCP/IP Access

FIG. 1 is a hardware block diagram of a preferred embodiment of theinvention. FIG. 1 includes five subsystems: a hybrid terminal 110, aSLIP provider (Internet connection) 130, an application server 140, ahybrid gateway 150, and a satellite gateway 160. Hybrid terminal 110 isconnected to a modem 190, e.g., a 9600 baud modem, which connects toSLIP provider 130 through a telephone line 192. A satellite transmitter170, a satellite 175, and a satellite receiver 180 provide a fast,one-way link for transferring data from satellite gateway 160 to hybridterminal 110. Satellite transmitter 170, satellite 175 and satellitereceiver 180, however, do not themselves necessarily comprise a part ofthe present invention. Each of SLIP provider 130, application server140, and hybrid gateway 150 are connected to the Internet 128. As iswell-known in the art, the Internet 128 is a “network of networks” andcan be visually depicted only in general terms, as seen in FIG. 1.

Each of hybrid terminal 110, SLIP provider 130, application server 140,hybrid gateway 150 and satellite gateway 160 preferably includes aprocessor (not shown) that executes instructions stored in a memory (notalso shown). Other parts of the invention may also include processorsthat are not discussed herein, such as I/O processors, etc. Preferably,hybrid terminal 110, hybrid gateway 150, and satellite gateway 160 areimplemented as personal computers including an 80386/80486 or Pentiumbased personal computer operating at at least 33 MHz, but these elementscan be implemented using any data processing system capable ofperforming the functions described herein. Alternatively, thefunctionality of both hybrid gateway 150 and satellite gateway 160 couldbe performed in a single gateway unit (not shown) without departing fromthe spirit or scope of the present invention. In the describedembodiment, SLIP provider 130 is a conventional SLIP provider andapplication server 140 is any application server that can connect to theInternet 128 via TCP/IP.

As shown in FIG. 1, hybrid terminal 110 preferably also includesapplication software 112, driver software 114, a serial port 122 forconnecting hybrid terminal 110 to modem 190, and satellite interfacehardware 120 for connecting hybrid terminal 110 to satellite receiver180.

FIG. 2 shows a relationship between software in application 112,software in driver 114, serial port 122, and satellite interface 120.Application software 112 preferably includes TCP/IP software, such asSuperTCP, manufactured by Frontier, Inc., Chameleon, manufactured byNetmanager, and IRNSS, manufactured by SPRY, Inc. The describedembodiment preferably operates with the SuperTCP TCP/IP package and,thus, uses a standard interface 212 between the TCP/IP software 210 anddriver 114. Examples of standard interface 212 between TCP/IP software210 and driver 114 include the Crynson-Clark Packet Driver Specificationand the 3Com/Microsoft Network Driver Interface Specification (NDIS).Other embodiments within the scope of the invention may use otherstandard or non-standard interfaces between TCP/IP software 210 anddriver 114.

As shown in FIG. 2, application software 112 preferably also includeswell-know Internet utilities, such as FTP 230, and well-known userinterfaces, such as Mosaic and Gopher (shown). Application software 112can also include other utilities, e.g., News and Archie (not shown).

The following paragraphs describe how a request from hybrid terminal 110is carried through the Internet 128 to application server 140 and how aresponse of application server 140 is carried back to the user at hybridterminal 110 via the satellite link. (As used herein, the term“satellite link” refers to any portion of the path between applicationserver 140, the Internet 128, satellite gateway 160, satellitetransmitter 170, satellite 175, satellite receiver 180 and hybridterminal 110). The operation of each subsystem will be described belowin detail in separate sections.

In the present invention, hybrid terminal 110 is given two IP addresses.One IP packet address corresponds to SLIP provider 130 and is assignedby a SLIP service provider. The other IP address corresponds tosatellite interface 120 and is assigned by a hybrid service provider. IPaddresses are assigned by the SLIP and satellite network managers andloaded into hybrid terminal 110 as part of an installation configurationof the hybrid terminal's hardware and software. These two IP interfaceaddresses correspond to completely different physical networks. SLIPprovider 130 does not “know” anything about the satellite interface IPaddress or even whether the user is using the satellite service. If ahost somewhere in the Internet is trying to deliver a packet to thesatellite IP address by using the Internet routing scheme of routers,gateways, and ARPs (Address Resolution Protocol), the only way that thepacket can reach the satellite interface IP is to traverse the satelliteby being routed through satellite gateway 160.

The following example assumes that a user at hybrid terminal 110 desiresto send a request to a remote machine, such as application server 140that is running FTP (File Transfer Protocol) server software. The FTPsoftware running on application server 140 receives file transferrequests and responds to them in an appropriate fashion.

FIG. 3 shows the contents of a source field (SA) and of a destinationfield (DA) of packets sent between the elements of FIG. 1. A request fora file and a response of a file sent from application server 140 tohybrid terminal 110 may take the following path.

1) Within hybrid terminal 110, FTP client software 230 generates arequest and passes it to TCP/IP software 210. TCP/IP software 210 placesthe request in a TCP packet (see FIG. 11). Next, the TCP packet isplaced in an IP packet, having a format shown in FIG. 3. TCP/IP software210 places the IP packet in an Ethernet packet, as shown in FIG. 4, andpasses the Ethernet packet to driver 114. This packet has a source IPaddress corresponding to satellite interface 120 and a destination IPaddress of application server 140. Ethernet is a packet switchingprotocol standardized by Xerox Corporation, Intel Corporation, andDigital Equipment Corporation, which is described in “The Ethernet” ALocal Area Network Data Link Layer and Physical Layer Specification,”September 1980, which is available from any of these three companies,and which is incorporated by reference.

2) In driver 114, the Ethernet header and checksum are stripped off thepacket and the IP packet is encapsulated, or “tunneled,” inside ofanother IP packet, and sent over serial port 122 to SLIP provider 130.FIG. 5 shows a format of a tunneled packet. FIG. 7 shows an example of atunnelled packet. The encapsulation adds a new IP header 530 in front ofthe original packet 540 with a source address corresponding to SLIPprovider 130 and a destination address corresponding to hybrid gateway150.

3) SLIP provider 130 receives the IP packet, analyzes the tunnelingheader and, thinking it is destined for hybrid gateway 150, usesstandard Internet routing to send the packet to hybrid gateway 150.

3) When hybrid gateway 150 receives the packet, it strips off thetunneling header, revealing the true header with application server 140as the destination. The packet is then sent back out into the Internet128.

5) Internet routing takes the packet to application server 140, whichreplies with the requested file and addresses the reply to the request'ssource IP address, i.e., the IP address of the hybrid terminal'ssatellite interface 120.

6) In order to find the hybrid terminal's satellite interface 120, theInternet routing protocol will send the packet to the subnet containinga router/gateway connected to hybrid gateway 150. When a router on thesame physical network as satellite gateway 160 and hybrid gateway 150sends out an ARP for the IP address of satellite interface 120 (to finda physical address of satellite interface 120), hybrid gateway 150responds and says “send it to me.” Thus, application server 140 and therest of the Internet 128 think that packets sent to hybrid gateway 150will reach the hybrid terminal's satellite interface.

7) Once hybrid gateway 150 receives a reply packet from applicationserver 140, it sends it to satellite gateway 160. In the describedembodiment, hybrid gateway 150 encapsulates the packet in a specialpacket format that is used over the satellite link and uses thesatellite interface IP address to uniquely identify the satellitepacket's destination. Then hybrid gateway 150 sends the packet over theEthernet to satellite gateway 160.

8) Satellite gateway 160 broadcasts over the satellite link any packetsit receives from hybrid gateway 150.

9) Driver 114 in hybrid terminal 110 that services satellite interface120 scans all packets broadcast over satellite transmitter 170 lookingfor its satellite interface IP address in the header. Once it identifiesone, it captures it, strips off the satellite header revealing the replyIP packet, and sends it to driver 114.

Thus, IP packets sent into Internet 128 are carried by the SLIPconnection, while IP packets from the Internet 128 are carried by thesatellite link. The following paragraphs describe the operation of eachsubsystem in more detail.

1. The Hybrid Terminal

Hybrid terminal 110 is the terminal with which the user interacts. Thus,hybrid terminal 110 preferably includes a user interface device (notshown) such as a mouse, keyboard, etc. As shown in FIG. 1, hybridterminal 110 includes one or more application programs 112 (includingTCP/IP software 210), and driver software 114, which communicates withSLIP provider 130 through a serial port 122 and modem 190, using aserial driver portion 118, and which communicates with satellitereceiver 180 through a satellite interface 120, using a driver portion116.

To TCP/IP software 210, driver 114 appears to be an Ethernet card,although driver 114 is actually connected to satellite receiver 180 (viasatellite interface 120) and to SLIP provider 130 (via serial line 122and modem 190, respectively). Thus, TCP/IP software 210 believes that itis communicating with a single physical network, when it is, in reality,communicating with two physical networks (the SLIP dial up network and asatellite network).

FIG. 6 is a diagram of steps performed by driver 114 of hybrid terminal110 of FIG. 1. As shown in FIG. 6, driver 114 receives packets of datafrom TCP/IP software 210 and passes them to SLIP provider 130 via serialport 122 and modem 190. A packet sent by application server 140 isreceived through satellite receiver 180, passed through the satelliteinterface 120, passed to the satellite driver 220, and passed to driver114, which passes the received packet to TCP/IP software 210.

The following paragraphs discuss two basic functions performed by driver114 (tunneling and ARP handling) and discuss various implementationdetails for the preferred embodiment.

A. “Tunnelling”

As discussed above, hybrid terminal 110 has two IP addresses associatedwith it: one for SLIP provider 130 and one for the satellite interface120. Packets containing requests are sent from hybrid terminal 110 toapplication server 140 via the Internet 128, while packets containing areply are sent back via the satellite link. Tunneling is the method bywhich application server 140 is “fooled” into sending a reply to adifferent IP address (satellite interface 120) than that of the sender(serial port 122).

A packet received by driver 114 from the TCP/IP software 210 has asource address of satellite gateway 160 and a destination address ofapplication server 140. As shown in step 610 of FIG. 6, driver 114removes the Ethernet header and checksum and encapsulates the IP headerinto an IP tunnelling header having a source address of SLIP provider130 and a destination address of hybrid gateway 150 (see FIG. 7). Asdescribed above, at hybrid gateway 150, the tunnelling header is removedand the packet is sent back into the Internet 128 to be sent toapplication server 140.

When forming a tunneling header, driver 114 copies all the values fromthe old header into the new one with the following exceptions. Thesource and destination addresses of the tunneling header change, asdescribed above. In addition, a total packet length field 510 is changedto contain the contents of length field 310 plus the length of thetunneling header. Lastly, the driver 114 recalculates checksum 520 ofthe tunneling header because some of the fields have changed.

B. ARP Handling

ARP (Address Resolution Protocol) is used by TCP/IP to dynamically binda physical address, such as an Ethernet address, to an IP address. WhenTCP/IP finds an IP address for which it does not know a physicaladdress, TCP/IP broadcasts an ARP packet to all nodes, expecting aresponse that tells TCP/IP what physical address corresponds to the IPaddress.

During initialization, driver 114 declares to TCP/IP software 210 thatdriver 114 is an Ethernet card to ensure that the packets that TCP/IPpackage sends are Ethernet packets and that the TCP/IP package will beprepared to receive packets at a high-rate of speed. As shown in step620 of FIG. 6, when driver 114 detects that TCP/IP has sent an ARPpacket, driver 114 creates a physical address and sends a reply packetto TCP/IP software 210. The contents of the physical address areirrelevant, because driver 114 strips off the Ethernet header on packetsfrom TCP/IP before the packets are sent to SLIP provider 13.

C. Other Functions

As shown in step 630 of FIG. 6, packets received by driver 114 fromsatellite receiver 180 (via satellite driver 114) are passed to TCP/IPsoftware 210. The following paragraphs discuss implementation detailsfor the described embodiment.

In a preferred embodiment, TCP/IP software 210 (e.g., Frontier'sSuperTCP) sends an ACK (acknowledge) for every packet it receives, eventhough this action is not required by the TCP/IP protocol. In thissituation, many packets compete for the slow link to SLIP provider 130.In TCP/IP, the ACK scheme is cumulative. This means that when atransmitter receives an ACK stating that the receiver has received apacket with sequence number N, then the receiver has received allpackets with sequenced numbers up to N as well, and there is no reasonwhy every packet needs to be ACK'ed.

FIG. 8 is a flowchart of steps performed in a preferred embodiment bydriver 114 of hybrid terminal 110. FIG. 11 is a diagram showing apreferred TCP packet format. FIG. 11 includes a sequence number field1102, an acknowledgment (ACK) number field 1104, and a checksum field1106. In step 810 of FIG. 8, driver 114 receives an ACK packet withsequence number N from TCP/IP software 210. The packet is queued alongwith other packets waiting to be sent to SLIP provider 130. In step 820driver 114 checks to determine whether there is a “run” of sequentialpackets waiting to be sent. If so, in step 830, driver 114 deletes ACKpackets for the same TCP connection that have sequence numbers in therun from the queue and sends an ACK only for the highest sequence numberin the run. This action alleviates the bottleneck caused by therelatively slow modem speeds.

Serial port 122 provides a physical connection to modem 190 and, throughit, to the terrestrial network via a SLIP protocol as described below inconnection with SLIP provider 130. Serial data is sent and receivedthrough an RS-232 port connector by a UART (Universal AsynchronousReceiver Transmitter), such as a U8250, which has a one byte buffer andis manufactured by National Semiconductor, or a U16550, which has a 16byte buffer and is also manufactured by National Semiconductor.

The invention preferably operates under the DOS operating system andWindows, but also can operate under other operating systems.

Satellite driver software 220 receives packets from satellite 180, andpasses them to driver 114 using a DOS call. Thus, the two physical linksare combined within driver 114 and the existence of two physical linksis transparent to TCP/IP software 210. Satellite driver 220 scans allpackets transmitted over the satellite channel for a packet with aheader corresponding to the IP address of the satellite interface 122,performs some error detection and correction on the packet, buffers thereceived packet, and passes the packet to driver 114 using a DOS call,e.g., IOCTL-output-cmd( ). Driver 114 copies data from satellite driver220 as quickly as possible and passes it to TCP/IP software 210.

As discussed above, TCP/IP software 210 is fooled into thinking that itis connected to an Ethernet network that can send and receive at 10Mbps. This concept is helpful on the receive side because data from thesatellite is being received at a high rate. On the transmit side,however, modem 190 is not capable of sending at such a high rate. Inaddition, TCP/IP software 210 sends Ethernet packets to driver 114,i.e., an IP packet is encapsulated into an Ethernet packet. Because SLIPprovider 130 expects IP packets, driver 114 must strip the Ethernetheader before the packet is sent to SLIP provider 130.

As described above in connection with FIG. 8, driver 114 also includes atransmit and receive queue. As data is received from TCP/IP software 210and received from the satellite driver 220, it is buffered within thequeue. When the queue is full, e.g., when TCP/IP is sending packetsfaster than modem 190 can send them, driver 114 drops the packets andreturns an error so that TCP/IP software 210 will decrease its rate oftransmission.

In a first preferred embodiment, a SLIP connection is initiated with anautomatic logon procedure. In another preferred embodiment, driver 114executes instructions to allow a user to perform a SLIP logon manually.

Because TCP/IP software 210 preferably is configured to talk to theEthernet and it is desirable to receive the largest packet sizepossible, driver 114 configures TCP/IP so that the MTU (MaximumTransmission Unit) of the network is as large as possible, e.g., 1500bytes. Some SLIP providers 130 have a smaller MTU, e.g., 512 bytes. Tohandle the disparity in size, driver 114 segments large packets receivedfrom TCP/IP software 210 into segments the size of the SLIP MTU. Once apacket is segmented, it is reassembled in hybrid gateway 150. Only thetunnelling header is copied as the header of the segments.

2. The SLIP Provider

SLIP provider 130 performs the function of connecting hybrid terminal110 to the Internet 128. As described above, other protocols, such asPPP (point to point protocol), could also be used to perform theconnecting function. SLIP server 130 receives SLIP encoded IP packetsfrom modem 190, uncodes them, and forwards them to hybrid gateway 150via the Internet 128.

In its most basic form, SLIP provider 130 delimits IP packets byinserting a control character such as hex 0xC0-SLIP between them. Toinsure that a data byte is not mistaken for the control character, alloutgoing data is scanned for instances of the control character, whichis replaced by a two character string. The SLIP protocol is described indetail in J. Romkey, “A Nonstandard for Transmission of IP Datagramsover Serial Lines: SLIP,” RFC 1055, June 1988, pp. 1-6, which isincorporated by reference.

3. The Application Server

Application server 140 is a computer system running any combination ofknown application programs available on the Internet 128 using theTCP/IP protocol suite. For example, application server 140 may transferfiles to requesting users via FTP. In this regard, application server140 may be thought of as a host computer. Although hybrid terminal 110actually has two IP addresses (a serial port address and an address forthe satellite interface), the software executing on application server140 thinks that it is receiving requests over the satellite network andsending responses over the satellite network. Hybrid terminal 110 iscompletely transparent to application server 140.

4. The Hybrid Gateway

Although only one hybrid terminal 110 is shown in FIG. 1, the inventioncan include a plurality of hybrid terminals 110. Preferably, all packetssent from all hybrid terminals 110 pass through hybrid gateway 150 toget untunnelled. Thus, hybrid gateway 150 is a potential systembottleneck. Because of this potential bottleneck, the functions ofhybrid gateway 150 are as simple as possible and are performed asquickly as possible. Hybrid gateway 150 also has good Internetconnectivity to minimize the accumulated delay caused by packets waitingto be processed by hybrid gateway 150.

A. Untunnelling

FIG. 9 is a diagram of steps performed by hybrid gateway 150 of FIG. 1.In step 910, hybrid gateway 150 receives a tunnelled packet having aformat shown in FIG. 5. Hybrid gateway 150 “untunnels” the packet bystripping off the tunnelling header and passes the packet back to theInternet 128.

As described above, packets are sometimes broken into segments when theyare sent in order to accommodate a small MTU of SLIP provider 130.Packets may also be segmented as they pass through other elements of theInternet 128 having small MTUs. For fragmented packets, only thetunnelled header is copied into the header of each segment. Hybridgateway 150 stores fragmented packets in a memory (not shown) andreassembles them in order before untunnelling the original packet andpassing it to the Internet 128. Preferably, a “time to live” value isassigned to each packet when it is sent by driver 114 and if allsegments do not arrive before a time to live timer expires, the packetis discarded.

B. ARP Responding

Preferably, satellite gateway 160 is on a same physical network ashybrid gateway 150. As shown in step 920 of FIG. 9, when a router on thesame physical network as satellite gateway 160 and hybrid gateway 150sends out an ARP for the IP address of satellite gateway 160 (to find aphysical address of satellite gateway 160), hybrid gateway 150 respondsand says “send it to me.” Hybrid gateway 150 needs to intercept packetsintended for satellite gateway 160 because it needs to encapsulatepackets for satellite gateway 160 as follows.

C. Satellite Packetizing

The following paragraphs describe how packets travel from applicationserver 140 through hybrid gateway 150 and to satellite gateway 160. Thefollowing explanation is given by way of example and is not intended tolimit the scope of the present invention. As shown in step 930 of FIG.9, hybrid gateway 150 encapsulates replies from application server 140into a satellite packet format. FIG. 10 is a diagram showing a format ofa satellite packet sent to satellite gateway 160 of FIG. 1. A satellitepacket includes the data 1010 of an original IP packet and two headers1020, 1030 added by hybrid gateway 150.

Satellite gateway 160 expects IP packets to be encapsulated first in aspecial satellite packet and then within an LLC-1 IEEE 802.2 link levelcontrol, type 1 packet. Satellite header 1020 identifies the downlinkand contains a sequence number and the packet length. An LLC-1 header1030 preferably is used to send the packet to satellite gateway 160, inan Ethernet LAN. Hybrid gateway 150 prepares packets for satellitegateway 160 by appending headers 1020 and 1030 to the front of an IPpacket 1010.

The receiver in hybrid terminal 110 does not receive the LLC-1 header1030. Hybrid terminal 110 identifies packets intended for it by checkinga least significant byte in the satellite IP address. Thus, a six bytesatellite destination address is determined by reversing an order ofbytes of the satellite IP address for hybrid terminal 110 and thenpadding the rest of the address with zeroes.

5. The Satellite Gateway

Satellite gateway 160 can include any combination of hardware andsoftware that connects satellite transmitter 170 to hybrid gateway 150.Satellite transmitter 170 and satellite receiver 180 can be anycombination of hardware and software that allows data to be transmittedby satellite transmitter 170 and received by satellite receiver 180, andto be input to hybrid terminal 110. For example, satellite gateway 160preferably is a personal computer with a high-speed Ethernet connectionto hybrid terminal 110. When satellite gateway 160 receives a packetfrom hybrid gateway 150, it sends it over the satellite link.

Satellite communication may be effected by, for example, the PersonalEarth Station designed and manufactured by Hughes Network Systems, Inc.In a preferred embodiment, a one-way version of the Personal EarthStation is used. Another embodiment uses a satellite communicationsystem manufactured by Comstream. Yet another embodiment uses a systemthat allows hybrid terminal 110 to be connected directly to satellitereceiver 180 via Hughes Network Systems'DirecPC product. The DirecPCsatellite interface card is described in “DirecPC, Phase A Data Sheet,”dated Jun. 7, 1993, which is incorporated by reference and by theinclusion of its contents which read as follows:

“DirecPC is a satellite, one-way broadcast network offering threeservices to the IBM compatible PC:

1. Digital package delivery—Software, games, multi-media news,electronic documents and any other data in the form of a collection ofPC files are made available to the PC on a scheduled or on-demand basis.

2. Data Pipe—provides multiple independent digital streams to carryvideo, audio, etc.

3. Hybrid Internet Access—high-speed, low-cost Internet connection whereDirecPC carries packets from the Internet and dial-up modem carriespackets into the Internet.

See FIG. 17.

To receive the DirecPC broadcast, a PC is equipped with a PC plug-incard and a 24 inch antenna. DirecPC uses a full Galaxy class Ku-Bandtransponder to provide an 11 Mbps broadcast channel. DES encryptionbased conditional access ensures that a receiver PC may only access datait is authorized to receive.

Section 1 PC User Perspective

The PC hardware consists of the DirecPC adapter, an antenna and a TVROstandard coaxial cable. The DirecPC adapter is a 16-bit ISA adapterproviding throughput comparable to a 16-bit ISA ethernet adapter.

The software appears to the user as a set of Windows applications. Theapplications:

assist installation and service registration.

support package delivery by allowing the user to select packages forreception, be notified when packages are received. The software alsosupports billing for packages received.

provide a TCP/IP protocol stack and set of applications for HybridInternet access.

provide a driver DLL on which third party software may layer data pipeapplications.

The software for a data pipe service is provided by the enterpriseproviding the service. Communications back to the uplink is required forbilling purposes and also for Hybrid Internet access. Thesecommunications take place via the PC's dial-up AT command-set modem.

Section 2 Open Interfaces And APIs

The DirecPC architecture is open, allowing content providers completecontrol over their content and the user interface to their content.DirecPC provides interfaces to content providers at the uplink andApplication Programming Interfaces (APIs) on the receiving PC. Thespecifications and APIs are available on request.

See FIG. 18.

Section 3 Content Providers

A content provider is an organization that supplies the data sent overthe DirecPC system. A content provider can be categorized as beingeither a:

1. Package Publisher—uses the DirecPC system as a means of selling anddistributing software packages or data packages where a package consistsof a set of PC files.

2. Data Pipe Provider—uses the DirecPC system as a data pipe transportmechanism. User services (News Feeds, Internet Access, Broadcast Videoand Audio, etc.) are layered on top of a datagram transport.

DirecPC supports multiple content providers of both kinds.

Section 4 DirecPC Package Distribution

The DirecPC system allows data packages to be distributed and purchased.The term “package” refers to any data (including electronic documents,multi-media data, software packages, games, etc.) which can take theform of a group of PC files.

To prepare a package for transmission, a publisher merges the package'sfiles into a single file using the appropriate utility (e.g. PKZIP orARJ) and loads the package into the uplink using an off-the-shelf filetransfer mechanism (e.g. TCP/IP's FTP, floppy-disk, CD-ROM, X-Modem,etc.). Scheduling, pricing and conditional access restrictions can beperformed either manually or automatically under publisher control whenthe package is loaded into the uplink.

DirecPC's conditional access mechanism ensures that a user may onlyreceive authorized packages. As part of initial registration, the useris provided a credit limit. The PC locally maintains a credit account.When the user selects a package for reception, the PC records thetransaction and debits the account. A log of all package receptions ismaintained on the PC's hard disk and can be browsed by the graphicalfront-end.

On uplink operator command, when the local credit limit is exceeded orwhen the user has purchased a certain number of packages, the PC makes adial-up call to the DirecPC billing service. The call reports thebilling information as well as usage information of packages received.

The usage information is used to provide feedback for future schedulingof packages. The reports given to publishers include for each packagereception, the name, address etc. of the recipient, the ID of thepackage and when package delivery took place.

A software package may either be transmitted on a scheduled basis oron-demand. Scheduled transfers are perfect for:

1. Periodical Distribution—examples include news and weather updates,electronic newspaper, magazine and catalog distribution.

2. Popular Package Delivery—packages for which there are expected to bemultiple recipients. The most popular (or highest profit) packages wouldbe scheduled more frequently to reduce the average time spent waiting,while less popular packages may be scheduled for overnight delivery.Scheduled delivery is lower cost than delivering a package on-request toeach buyer. The schedule for individual packages is manually set by huboperators with the submission of the package.

Phase A package delivery allows a single transmission at any given time.The rate of transmission is settable under operator control at speeds upto 2 Mbits/sec. Support for simultaneous transmissions will be providedin a subsequent release of DirecPC software.

A software package may be transmitted on-demand in the gaps betweenscheduled transmissions. Such a transfer delivers the information morequickly to the requesting PC, but at greater cost as the package is notbroadcast. A PC uses its modem to request the package.

DirecPC's low bit error rate and high availability ensure that packagesare reliably delivered with one transmission. For even graterreliability, each package may be set to employ one or more of thefollowing methods to ensure fail-safe delivery:

1. Repeated Transmission—A package may be scheduled to be sent more thanonce to ensure its delivery. A receiving PC, if any packets are lost onthe first transmission, fills in the gaps on subsequent transmissions.This mechanism ensures extremely high probability of delivery withoutrequiring use of a return link.

2. Retransmission requests—a PC, if it misses parts of a package, mayrequest retransmission of those parts. The missing parts are multi-castso that parts need only be retransmitted once even though they weremissed by multiple PCS. Retransmission requests are most appropriate forscheduled individual package transmissions where the package isscheduled less frequently.

3. Delivery confirmation—a PC, after successfully receiving andinstalling a package, may send a confirmation to the hub. Theseconfirmations are tabulated and provided in the form of reports to thepublisher. This method is more expensive in that it requires that adelivery confirmation (entailing a separate call) be sent by everyreceiving PC.

Section 5 Data Pipe Transmission

DirecPC's data pipe services are modelled on Local Area Networkmulti-cast transmission. The data pipe provider passes 802.2 LLC1Token-Ring or Ethernet multi-cast packets to the uplink. This allowsoff-the-shelf bridges and routers to be used to support a terrestrialbackhaul. It also allows some LAN based applications to operate acrossthe spacelink with little or no modification. The uplink relays thesepackets across the spacelink.

The DirecPC driver passes received packets to the applications. Toprevent unauthorized access, each multi-cast address is encrypted undera different key. The DirecPC device driver API allows applications todesignate which multi-cast addresses are of interest. Hardware filteringin the DirecPC adapter allows the reception of any 100 differentmulti-cast addresses.

DirecPC network management allocates to each service provider:

1. a Committed Information Rate (CIR)—a fraction of broadcast channelbandwidth which is guaranteed to the data pipe provider, and

2. one or more multi-cast 48 bit addresses—each address operates as aseparate data stream multiplexed on the one broadcast channel.

Section 6 Hybrid Internet Access

Hybrid Internet access allows a PC high-speed (over 100 Kbps) access tothe Internet. An HNS (Hughes Network Systems) provided NDIS devicedriver operates with an off-the-shelf TCP/IP package. Reception from theInternet takes place via DirecPC. Transmission into the Internet takesplace via a dial-up SLIP connection into the uplink. Hybrid InternetAccess allows operation of all the standard Internet applicationsincluding SMTP EMAIL, NNTP Usenet News, FTP, GOPHER and Mosaic. As partof initial registration, each receiving PC is provided a permanentlyassigned IP address.

Hybrid Internet Access is the result of joint development by HNS and theUniversity of Maryland funded in part by a MIPs grant. Continuingdevelopment will increase performance and allow receive-only receptionof Usenet News.

Section 7 Performance Specifications

Averaged across a whole year, each DirecPC receiver should be expectedto have a BER less than 10E-10 more than 99.5% of the time where asingle bit error causes the loss of an entire packet.

Section 8 User Characteristics

The receiver (antenna, cabling and PC plug-in card) is intended to beself-installable by consumers and small business. In cases whereself-installation is not desirable, the DirecPC adapter will beinstalled by the customer and the antenna and cable will be installed bythe HNS VSAT installers. The customer uses diagnostic software providedwith the adapter to ensure that the PC as a whole is ready for theantenna to be installed.

Maintenance will be performed either by the user swapping components(DirecPC adapter, LNB, etc. with telephone support). HNS's nationwideVSAT field-service network may also be contracted for.

At the downlink, satellite receiver 180 includes a 0.6 meterreceive-only antenna receiving HDLC encapsulated LAN packets. Satelliteinterface 120 includes rate ⅔ Viterbi/Reed-Soloman concatenated forwarderror correction.

Although only one hybrid terminal 110 and one application server 140 areshown in FIG. 1, the invention can include a plurality of hybridterminals 110 and/or a plurality of application servers 140. Preferably,all packets sent from all application servers 140 to a hybrid interface110 pass through a satellite gateway 160. Thus, satellite gateway 160 isa potential system bottleneck. Because of this potential bottleneck, thefunctions of satellite gateway 160 are as simple as possible and areperformed as quickly as possible.

c. Protocol Spoofing

TCP/IP protocol specifies that only a predetermined number of packetscan be outstanding during transmission, i.e., that only a limited numberof packets can be sent before an ACK (acknowledgment) is received. Thehigh bandwidth and long delays incurred in sending packets to anorbiting satellite and back means that at any given time, a large numberof packets may be “in the pipe” between transmitter and receiver.

When using conventional TCP/IP protocol, application server 140 sends apredetermined number of packets in accordance with a predeterminedwindow size, and then waits to receive ACKs over the modem link beforesending additional packets. The purpose of windowing is to limit anumber of packets that must be re-sent if no ACK is received and toprovide flow control, e.g., to prevent sending packets faster than theycan be received. The packets that have not been ACK'ed are stored in amemory so that they can be re-sent if no ACK is received.

In a preferred embodiment of the present invention, hybrid gateway 150“spoofs” application server 140 to improve the throughput over thesatellite link. Specifically, hybrid gateway 150 sends an ACK toapplication server 140, even though a corresponding packet may not havebeen received by hybrid terminal 110 via the satellite at the time.

FIG. 12 is a ladder diagram showing packets sent from application server140 to hybrid gateway 150 and from hybrid gateway to hybrid terminal 110through the satellite link. FIG. 12 is not drawn to scale. In FIG. 12,application server 140 sends a message #1 to hybrid gateway 150. Thepropagation time for this transmission is relatively short. Hybridgateway 150 immediately creates an ACK packet and sends it toapplication server 140. Hybrid gateway 150 also sends packet #1 tohybrid terminal 110 through the satellite link. This transmission has along propagation delay. When hybrid terminal 110 receives the packets,it sends an ACK #1 back to hybrid gateway 150 (e.g., using the tunnelingmechanism described above). In a system that does not use tunneling,hybrid gateway 150 needs to intercept the ACK packet from hybridterminal 110.

FIGS. 13(a) through 13(e) are flowcharts of steps performed by hybridgateway 150 of FIG. 1 during protocol spoofing. In step 1302 of FIG.13(a), hybrid gateway 150 receives a packet from application server 140indicating that a new connection is being formed between applicationserver 140 and hybrid terminal 110. In step 1304, hybrid gateway 150sets up a queue or similar data structure in memory to save un-ACK'edpackets for the new connection. FIG. 13(b) shows corresponding stepsperformed by hybrid gateway 150 when the connection is closed. Hybridgateway 150 receives a packet indicating the closure in step 1306 anddeletes the queue and saved values for the connection in step 1308.

In step 1310 of FIG. 13(c), hybrid gateway 150 fails to receive an ACKfor a packet number X from hybrid terminal 110 before an end of apredetermined timeout period. Hybrid gateway 150 maintains a timer foreach un-ACK'ed packet. At the end of the predetermined period, hybridgateway 150 retransmits a packet corresponding to the expired timer. Instep 1312, hybrid gateway 150 resends packet number X, which itpreviously saved in the memory queue for this connection (see FIG. 13(d)below).

In step 1314 of FIG. 13(d), hybrid gateway 150 receives a packet fromapplication server 140. In step 1316, hybrid gateway 150 sends thereceived packet to satellite gateway 160, where it is transmitted overthe satellite link, and saves the packet in case it needs to beretransmitted (see FIG. 13(c)). Hybrid gateway 150 then creates an ACKpacket to send to application server 140 in step 1318. The created ACKpacket incorporates a format shown in FIG. 11. Hybrid gateway 150creates an ACK number for field 1104. The ACK number is determined asfollows:

Hybrid gateway 150 saves the following information for each connection:

1) Send sequence number—a highest in-sequence number of packets sent byapplication server 140 over the connection.

2) ACK sequence number—the ACK sequence number from the most recentpacket sent by hybrid terminal 110 over this connection.

3) ACK window size—the window size from the most recent packet fromhybrid terminal 110 over this connection.

4) ACK number—the ACK sequence number that is relayed to applicationserver 140. The ACK number is set to:

minimum (send sequence number, ACK sequence number+spoofed windowsize—ACK window size)

5) Spoofed window size—predetermined maximum number window size to beallowed on this connection.

When hybrid gateway 150 inserts the ACK number in the packet, it alsocalculates the packet's checksum 1106.

In step 1320 of FIG. 13(e), hybrid gateway 150 receives an ACK packetover the modem link from hybrid terminal 110. In step 1322, hybridgateway 150 removes from the queue the packet for which the ACK wasreceived. Because an ACK was received, the packet does not need to bere-sent. In the TCP/IP protocol, a packet containing an ACK may or maynot contain data. Hybrid gateway 150 edits the received packet toreplace the packet's ACK number 1104 with a “spoofed” ACK number in step1326. The spoofed ACK number is determined in the same way as the ACKnumber in step 1318 of FIG. 13(d). When hybrid gateway 150 substitutesthe spoofed ACK number 1104 in the packet, it also recalculates thepacket's checksum 1106 in step 1326.

In step 1328, hybrid gateway 150 forwards the received ACK packet toapplication server 140. Application server 140 may simply disregard thepacket if it contains an ACK and no data. In another embodiment, hybridgateway 150 simply discards a packet received from hybrid terminal 110that contains an ACK, but no data.

If the connection goes down, either explicitly or after a predeterminedperiod of time, hybrid gateway 150 deletes the saved packets for theconnection.

d. Summary

In summary, the present invention allows a personal computer to sendmessages into the Internet using a conventional dial-up link and todownload data from the Internet using a high-speed one-way satellitelink. In a preferred embodiment, the invention uses a conventional SLIPprovider to connect to the Internet and uses a commercial softwareTCP/IP package that has a standard driver interface. A spoofing protocolcompensates for the long propagation delays inherent to satellitecommunication.

II. SELECTIVE SATELLITE OR TERRESTRIAL LINK

According to a second embodiment of the present invention, informationdownloaded from the Internet may be selectively received via ahigh-speed link, or a lower speed link, such as a terrestrial link, asdescribed in detail below. In a preferred embodiment, the high-speedlink is a satellite link. It is understood, however, that other highspeed links, such as cable television lines or the like, may be used.Similarly, the terrestrial link may be any low-speed network, such as aTCP/IP network, dial-up telephone, ISDN D-channel, or CPDP.

a. General Overview

As set forth above, the use of the satellite link to downloadinformation from the Internet has many advantages, such as highbandwidth capability. There may be some applications, however, when auser may prefer to use a terrestrial link, rather than a satellite link,to download information from the Internet. For example, because of thedistance of the satellite from earth, the response time using asatellite link may be approximately 600 ms, as opposed to approximately300 ms for a terrestrial link. Thus, in applications which are sensitiveto response time, such as Telnet or domain name look-ups, a terrestriallink may be preferred.

Also, a user of the satellite link is generally charged based on theamount of time the satellite link is used. Thus, in order to controlcosts of the satellite link service, a user may prefer to use aterrestrial link for applications, such as Progressive Networks and RealAudio, where the high bandwidth and speed of the satellite link is notimportant but the amount of total traffic (measured in megabytes) isgreat.

Further, many Internet dial-up service providers offer value-addedservices (such as Usenet news or customer service evaluations) that areonly accessible by their subscribers. Many of these providers verifythat a user is a subscriber by checking the source IP address of theuser's request. Because the satellite link effectively changes thesource IP address of the request, the provider will not recognize therequest and, consequently, the user may not be able to access thevalue-added services. Thus, a user may prefer to use a terrestrial link(which does not effect the source IP address) in order to access certainvalue-added services.

Therefore, the second embodiment of the present invention allows a userto selectively bypass the above-described satellite link and use aterrestrial link to retrieve information from the Internet.

b. Selecting the Terrestrial Link

In a preferred embodiment, the hybrid terminal 110 includes a graphicaluser interface (GUI) which allows a user to select a list ofapplications that will use the terrestrial link, rather than thesatellite link, for retrieving information from the Internet 128. Anexample of a user interface 1410 is shown in FIG. 14. The interface 1410allows a user to select which applications will use the terrestrial link(referred to hereafter as “terrestrial applications”). For example,applications such as Telnet, Finger and Ping, which require fastresponse time but low bandwidth, may be selected to use the terrestriallink. The hybrid terminal 110 may also be configured such that theseapplications (and/or other applications) are routed through theterrestrial link by default.

Each application is assigned a specific TCP/UDP (transmission controlprotocol/user datagram protocol) port number (designated by referencenumber 1412 in FIG. 14). For example, web browsing applications areassigned to port no. 80, telnet applications are assigned to port no.23, etc. A user may select terrestrial applications by specifying theTCP/UDP port number (or another type of protocol identification number,if applicable) for the application. A user may change the list ofselected terrestrial applications at any time.

Preferably, the graphical user interface of the hybrid terminal 110 alsoallows the user to designate one or more IP address ranges, when suchaddress ranges can only be accessed terrestrially. For example, thedesignated address range could correspond to the addresses of the ISPvalue-added services. The hybrid terminal 110 would route any datapacket with a destination address falling within a designated addressrange over the terrestrial link.

Preferably, even if an application was not prespecified by a user as aterrestrial application, a user may specify “on-the-fly” that allapplications should be routed over the terrestrial link This may beimplemented, for example, by incorporating a pull-down menu in the userinterface which allows a user to specify all applications asterrestrial. Once specified, all information retrieved from the Internetwould be received over the terrestrial link until the user specifiesthat only the pre-selected applications should use the terrestrial link.A user may also be able to specify “on-the-fly” that a singleapplication be routed over the terrestrial link.

Further, the hybrid terminal 110 could be modified to automaticallyselect the terrestrial link if, for example, the satellite linkmalfunctions. The satellite receiver 180 is able to detect a loss ofreceive signal that may be caused, for example, by rain attenuation,antenna misalignment, system failures, etc. Upon detecting a failure inthe satellite link, the hybrid terminal could automatically switch tothe terrestrial link. Similarly, if the hybrid gateway 150 detects thatthe satellite link is congested or overloaded, it could route a portionof the data over the terrestrial link in order to relieve thecongestion. Selected data packets received by the hybrid gateway fortransmission over the satellite link could be modified and returned tothe Internet for re-routing over the terrestrial link.

The selective satellite or terrestrial link also serves as a troubleshooting tool in the system. Thus, problems with the terrestrial link(such as with the dial-up ISP) can be isolated from the satelliteservice equipment. The satellite link may serve as a back-up if theterrestrial link fails, and vice versa.

c. The Terrestrial Link

Referring to the hardware diagram of FIG. 1, the subsystems for thesecond embodiment of the invention remain unchanged, except that thesoftware in driver 114 in the hybrid terminal 110 is modified to allowfor selective use of the satellite link or the terrestrial link toretrieve information from the Internet 128. (The modified driver will bereferred to as driver 114A). The terrestrial link comprises the pathfrom application server 140 to the Internet 128 to the serial port 122in the hybrid terminal 110 via the SLIP provider 130 and the modem 190.The SLIP provider 130 may alternatively be a PPP (point to pointprotocol) provider.

FIG. 15 is a simplified hardware diagram of the present inventiondepicting the satellite and terrestrial paths for requesting andreceiving information from the Internet 128. The satellite request pathfor sending a request from the hybrid terminal 110 to the applicationserver 140, wherein the response is to be returned via the satellitelink, is shown by the solid arrows labeled “A”. The satellite requestpath “A” originates with the hybrid terminal 110, which sends a datarequest packet via the SLIP provider. As described in detail above, thedriver 114A in the hybrid terminal 110 “tunnels” the request packet suchthat the request packet is routed to the hybrid gateway 150 via theInternet 128. The hybrid gateway 150 “untunnels” the packet and sends itback to the Internet 128 for routing to the application server 140.

The satellite reply path for sending a reply from the application server140 to the hybrid terminal 110 via the satellite link is shown by thesolid arrows labeled “B” in FIG. 15. As explained in detail above, theapplication server 140 is “fooled” into sending reply packets to thehybrid terminal 110 through the hybrid gateway 150 and the satellitelink, rather than returning the reply packets to the sender (i.e. SLIPprovider 130).

The terrestrial request path for sending a request from the hybridterminal 110 to the application server 140, wherein the response is tobe returned via the terrestrial link, is shown by the dashed arrowslabeled “C” in FIG. 15. Like the satellite request path “A”, the hybridterminal 110 sends a data request packet to the SLIP provider 130.Unlike the satellite request packet, however, the driver 114A does nottunnel the request packet to the hybrid gateway 150. Instead, in theterrestrial request path “C”, the request is routed directly from theSLIP provider 130 to the application server 140 via the Internet 128.

The terrestrial reply path from the application server 140 to the hybridterminal 110 via the terrestrial link is shown by the dashed arrowslabeled “D” in FIG. 15. The terrestrial reply path “D” is the reverse ofthe terrestrial request path “C”. Thus, the application server 140 sendsthe reply packets directly to the SLIP provider 130 via the Internet128. The SLIP provider 130 then transmits the reply packets to thehybrid terminal 110.

d. Packet Handling for the Terrestrial Link

The following paragraphs describe how the request and reply packets aremanipulated for transmitting packets via the terrestrial link. FIG. 16is a simplified block diagram illustrating the relationship between theTCP/IP software 210 (included in application software 112), the softwarein the modified satellite/terrestrial driver 114A, the serial port 122,and the satellite interface 120 in the hybrid terminal 110.

As described in detail above, the TCP/IP software 210 generates arequest packet and provides the request packet to the driver 114A. FIG.16A is a simplified diagram of an original request packet sent from theTCP/IP software 210 to the driver 114A. Referring also to FIG. 16, thepoint “A” represents the original request packet shown in FIG. 16A. Asexplained in detail above, the original request packet generated by theTCP/IP software 210 has a destination address (DA) of the applicationserver 140 and a source address (SA) of the satellite interface 120. Theoriginal request packet also includes an IP header checksum (the sum ofthe numbers making up the source and destination addresses) and aTCP/UDP checksum (the sum of the numbers making up the entire packet).The checksums are used to determine whether the packets have beenaccurately transmitted, without corruption of the addresses or data. Theoriginal request packet also includes the request data.

Also, as explained in detail above, if the request is to be returned viathe satellite link (i.e. the user has not designated the applicationgenerating the request as a terrestrial application), the driver 114A“tunnels” the packet inside another packet and sends the tunneled packetover the serial port 122 to the SLIP provider 130. The tunneled packet,which is shown in FIG. 16B and represented by point “B” on FIG. 16,includes a new destination address corresponding to the hybrid gateway150 and a new source address corresponding to the SLIP provider 130. Thetunneled packet also includes a new IP header checksum corresponding tothe new destination and source addresses. The remainder of the tunneledpacket comprises the original request packet provided to the driver 114Afrom the TCP/IP software 210.

Alternatively, if the user has selected the application generating therequest as a terrestrial application, the driver 114A does not “tunnel”the packet. Instead, as shown in FIG. 16C and represented by point “C”on FIG. 16, the driver 114A changes the source address of the originalrequest packet from the satellite interface to the SLIP provider. Thedestination address (corresponding to the application server) and therequest data remain the same as in the original packet. The IP headerchecksum and TCP/UDP checksum are also modified consistent with thechange of the source address.

The terrestrial request packet of FIG. 16C is routed via the terrestrialrequest path (path “C” in FIG. 15). The SLIP provider 130 receives thepacket from the serial port 122 and sends the packet to the destinationaddress (i.e. the application server 140) via standard Internet routing.The application server 140, in turn, responds to the request by sendinga terrestrial reply packet, as shown in FIG. 16D. The application server140 addresses the reply packet to the source address of the request(i.e. the SLIP provider 130). Thus, the terrestrial reply packet fromthe application server 140 has a destination address corresponding tothe SLIP provider 130 and a source address corresponding to theapplication server 140. The terrestrial reply packet also contains anappropriate IP header and TCP/UDP checksum and the reply data.

The terrestrial reply packet is sent from the application server 140 viastandard Internet routing to the SLIP provider 130. The SLIP provider130 then sends the reply packet to the serial port 122 in the hybridterminal 110. The terrestrial reply packet provided to the serial port122 is represented by point “D” on FIG. 16.

The driver 114A receives the terrestrial reply packet from the serialport 122 and modifies the reply packet by changing the destinationaddress from the SLIP provider to the satellite interface, as shown inFIG. 16E. The driver 114A changes the destination address to thesatellite interface because, as described in detail above, the TCP/IPsoftware 210 is configured with an IP address corresponding to thesatellite interface. Thus, the TCP/IP software will not recognize theterrestrial reply packet unless the reply packet includes the proper IPaddress of the satellite interface for the TCP/IP software. The driver114A also changes the IP header checksum and the TCP/UDP checksumconsistent with the new destination address. The modified terrestrialreply packet is represented by point “E” on FIG. 16.

e. Automatic Selection of the Terrestrial Link

As described above, the hybrid gateway 150 may automatically routeapplications over the terrestrial link if, for example, the satellitelink becomes congested. The hydrid gateway 150 may also automaticallyselect the terrestrial link if a “streaming” application is used. Astreaming application is a continuously running application (such asaudio, video, slide shows, etc.) as opposed to applications which run insegments or bursts (such as web browsing). Streaming applicationsgenerally occupy an inordinate share of the satellite link, which maybecome prohibitively expensive for the user. Therefore, the hybridgateway 150 may be configured to automatically detect packets which arepart of a streaming application and route them over the terrestriallink.

The hybrid gateway 150 may detect a streaming application for routingover the terrestrial link by examining the header on the data packet.Generally, UDP (user datagram protocol) packets are part of a streamingapplication. Thus, the hybrid gateway 150 could assume that all UDPpackets are streaming applications and route them over the terrestriallink.

Alternatively, the hybrid gateway 150 could detect streamingapplications by monitoring the traffic characteristics of TCPconnections. Generally, streaming applications run for an extendedperiod of time at a bit rate consistent with a conventional dial-upconnection (i.e., under 30 Kbit/sec). Also, any connection which hascarried more than, for example, 12 Megabytes may be assumed to be astreaming application. Thus, the hybrid gateway 150 could automaticallyroute packets with these traffic characteristics over the terrestriallink.

As described in section (e) above, the hybrid gateway 150 couldautomatically route selected packets over the terrestrial link bychanging the destination address of the packet to the SLIP provider andrecalculating the IP header and TCP/UDP checksums accordingly. Thus, thehybrid gateway modifies the packet into a terrestrial reply packet asshown in FIG. 16D. This reply packet is then sent via standard Internetrouting to the SLIP provider 130. The SLIP provider 130, in turn, sendsthe packet to the driver 114A in the hybrid terminal 110 via the serialport 122. The driver 114A receives the reply packet and changes thedestination address to the satellite interface and recalculates thechecksums, as described above in connection with FIG. 16E.

f. Summary

The second embodiment of the invention allows a user to specify thatcertain applications will retrieve data from the Internet over theterrestrial link, rather than over the satellite link. Generally, a usermay prefer to use the terrestrial link for applications (such as Telnet)that require faster response time. The user may also select theterrestrial link to control costs associated with the satellite link orto access certain value-added services. The hybrid gateway may alsoautomatically select certain applications such as streamingapplications, to be routed over the terrestrial link. Data is routedover the terrestrial link by modifying the IP addresses of data packetsin the hybrid terminal.

Other embodiments of the invention will be apparent to those skilled inthe art from consideration of the specification and practice of theinvention disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with the true scope of theinvention being indicated by the following claims.

What is claimed is:
 1. A system for retrieving data from a sourcecomputer coupled to a network, said system comprising: a low-speed pathlinking a requesting terminal with the network; a high-speed pathlinking the requesting terminal with the network; and selection meansfor selecting one of the low-speed path and the high-speed path fortransmission of data from the source computer to the requestingterminal, wherein said selection means selects one of the low-speed pathand the high-speed path in accordance with one or more of: (a)malfunction of the high-speed path, and (b) congestion of the high-speedpath, wherein said selection means selects one of the low-speed path andthe high-speed path for transmission of data from the source computer tothe requesting terminal by selectively modifying a data packet.
 2. Asystem according to claim 1, wherein said selection means selectivelymodifies the data packet by selectively modifying an address field ofthe data packet.
 3. A system according to claim 2, wherein saidselection means selectively modifies the data packet by selectivelymodifying an IP address of the data packet.
 4. A system according toclaim 3, wherein said selection means selectively modifies the datapacket by selectively modifying a destination IP address of the datapacket.
 5. A system according to claim 3, wherein said selection meansselectively modifies the data packet by selectively modifying a sourceIP address of the data packet.
 6. A system according to claim 1, whereinthe high-speed path includes a satellite link and the low-speed pathincludes a terrestrial link.
 7. A system according to claim 1, whereinthe high-speed path includes a cable television link.
 8. A systemaccording to claim 1, wherein said selection means is embodied in therequesting terminal.
 9. A system according to claim 8, wherein saidselection means selects one of the low-speed path and the high-speedpath in response to detection by the requesting terminal of loss ofreceive of signal on the high-speed path.
 10. A system according toclaim 9, wherein the high-speed path includes a satellite link.
 11. Asystem according to claim 10, wherein the loss of receive of signal iscaused by rain attenuation or satellite antenna misalignment.
 12. Asystem according to claim 1, wherein said selection means selects one ofthe low-speed path and the high-speed path in response to detection ofloss of receive of signal on the high-speed path.
 13. A system accordingto claim 12, wherein the high-speed path includes a satellite link. 14.A system according to claim 13, wherein the loss of receive of signal iscaused by rain attenuation or satellite antenna misalignment.
 15. Asystem according to claim 1, wherein said selection means selects one ofthe low-speed path and the high-speed path in accordance withmalfunction of the high-speed path.
 16. A system according to claim 1,wherein said selection means selects one of the low-speed path and thehigh-speed path in accordance with congestion of the high-speed path.17. A selecting device for use with or within a network, the networkincluding (i) a requesting apparatus capable of being coupled to thenetwork by a lower-speed path or a higher-speed path and (ii) a sourceapparatus for transmitting data to the requesting apparatus, saidselecting device selecting one of the lower-speed path and thehigher-speed path for transmission of data from the source apparatus tothe requesting apparatus in accordance with one or more of: (a)malfunction of the higher-speed path, and (b) congestion of thehigher-speed path, wherein said selecting device selects one of thelower-speed path and the higher-speed path for transmission of data fromthe source apparatus to the requesting apparatus by selectivelymodifying a data packet.
 18. A selecting device according to claim 17,wherein said selecting device selectively modifies the data packet byselectively modifying an address field of the data packet.
 19. Aselecting device according to claim 18, wherein said selecting deviceselectively modifies the data packet by selectively modifying an IPaddress of the data packet.
 20. A selecting device according to claim19, wherein said selecting device selectively modifies the data packetby selectively modifying a source IP address of the data packet.
 21. Aselecting device according to claim 19, wherein said selecting deviceselectively modifies the data packet by selectively modifying adestination IP address of the data packet.
 22. A selecting deviceaccording to claim 17, wherein the higher-speed path includes asatellite link and the lower-speed path includes a terrestrial link. 23.A selecting device according to claim 17, wherein the higher-speed pathincludes a cable television link.
 24. A selecting device according toclaim 17, wherein said selecting device is embodied in the requestingapparatus.
 25. A selecting device according to claim 24, wherein saidselecting device selects one of the lower-speed path and thehigher-speed path in response to detection by the requesting apparatusof loss of receive of signal on the higher-speed path.
 26. A selectingdevice according to claim 25, wherein the higher-speed path includes asatellite link.
 27. A selecting device according to claim 26, whereinthe loss of receive of signal is caused by rain attenuation or satelliteantenna misalignment.
 28. A selecting device according to claim 17,wherein said selecting device selects one of the lower-speed path andthe higher-speed path in response to detection of loss of receive ofsignal on the high-speed path.
 29. A selecting device according to claim28, wherein the higher-speed path includes a satellite link.
 30. Aselecting device according to claim 29, wherein the loss of receive ofsignal is caused by rain attenuation or satellite antenna misalignment.31. A selecting device according to claim 17, wherein said selectingdevice selects one of the lower-speed path and the higher-speed path inaccordance with malfunction of the higher-speed path.
 32. A selectingdevice according to claim 17, wherein said selecting device selects oneof the lower-speed path and the higher-speed path in accordance withcongestion of the higher-speed path.
 33. An apparatus for receiving datafrom another apparatus coupled to a network, said apparatus beingcapable of being coupled to the network by a lower-speed path or ahigher-speed path, said apparatus comprising: a selector that selectsone of the lower-speed path and the higher-speed path for transmissionof data from the another apparatus to said apparatus, wherein saidselector selects one of the lower-speed path and the higher-speed pathin accordance with one or more of: (a) malfunction of the higher-speedpath, and (b) congestion of the higher-speed path, wherein said selectorselects one of the lower-speed path and the higher-speed path fortransmission of data from the another apparatus to said apparatus byselectively modifying a data packet.
 34. An apparatus according to claim33, wherein said selector selectively modifies the data packet byselectively modifying an address field of the data packet.
 35. Anapparatus according to claim 34, wherein said selector selectivelymodifies the data packet by selectively modifying an IP address of thedata packet.
 36. An apparatus according to claim 35, wherein saidselector selectively modifies the data packet by selectively modifying asource IP address of the data packet.
 37. An apparatus according toclaim 35, wherein said selector selectively modifies the data packet byselectively modifying a destination IP address of the data packet. 38.An apparatus according to claim 33, wherein the higher-speed pathincludes a satellite link and the lower-speed path includes aterrestrial link.
 39. An apparatus according to claim 33, wherein thehigher-speed path includes a cable television link.
 40. An apparatusaccording to claim 33, wherein said apparatus further comprises adetector that is configured to detect loss of receive of signal on thehigher-speed path.
 41. An apparatus according to claim 40, wherein saidselector selects one of the lower-speed path and the higher-speed pathin response to detection by said detector of loss of receive of signalon the higher-speed path.
 42. An apparatus according to claim 41,wherein the higher-speed path includes a satellite link.
 43. Anapparatus according to claim 42, wherein the loss of receive of signalis caused by rain attenuation or satellite antenna misalignment.
 44. Anapparatus according to claim 40, wherein said selector selects thelower-speed path in response to detection by said detector of loss ofreceive of signal on the higher-speed path.
 45. An apparatus accordingto claim 44, wherein the higher-speed path includes a satellite link.46. An apparatus according to claim 45, wherein the loss of receive ofsignal is caused by rain attenuation or satellite antenna misalignment.47. An apparatus according to claim 33, wherein said selector selectsone of the lower-speed path and the higher-speed path in accordance withmalfunction of the higher-speed path.
 48. An apparatus according toclaim 33, wherein said selector selects one of the lower-speed path andthe higher-speed path in accordance with congestion of the higher-speedpath.
 49. A method for use with a system comprising (i) a sourceapparatus coupled to a network and (ii) an apparatus for receiving datafrom the source apparatus, the apparatus for receiving data beingcapable of being coupled to the network by a lower-speed path or ahigher-speed path, said method comprising: selecting one of thelower-speed path and the higher-speed path for transmission of data fromthe source apparatus to the apparatus for receiving data, wherein saidselecting step selects one of the lower-speed path and the higher-speedpath in accordance with one or more of: (a) malfunction of thehigher-speed path, and (b) congestion of the higher-speed path, whereinsaid selecting step selects one of the lower-speed path and thehigher-speed path for transmission of data from the source apparatus tothe apparatus for receiving data by selectively modifying a data packet.50. A method according to claim 49, wherein said selecting stepselectively modifies the data packet by selectively modifying an addressfield of the data packet.
 51. A method according to claim 50, whereinsaid selecting step selectively modifies the data packet by selectivelymodifying an IP address of the data packet.
 52. A method according toclaim 51, wherein said selecting step selectively modifies the datapacket by selectively modifying a source IP address of the data packet.53. A method according to claim 51, wherein said selecting step meansselectively modifies the data packet by selectively modifying adestination IP address of the data packet.
 54. A method according toclaim 49, wherein the higher-speed path includes a satellite link andthe lower-speed path includes a terrestrial link.
 55. A method accordingto claim 49, wherein the higher-speed path includes a cable televisionlink.
 56. A method according to claim 49, wherein said selecting step iseffected by the apparatus for receiving data.
 57. A method according toclaim 56, wherein said selecting step selects one of the lower-speedpath and the higher-speed path in response to detection by the apparatusfor receiving data of loss of receive of signal on the higher-speedpath.
 58. A method according to claim 57, wherein the higher-speed pathincludes a satellite link.
 59. A method according to claim 58, whereinthe loss of receive of signal is caused by rain attenuation or satelliteantenna misalignment.
 60. A method according to claim 49, wherein saidselecting step selects one of the lower-speed path and the higher-speedpath in response to detection of loss of receive of signal on thehigh-speed path.
 61. A method according to claim 60, wherein thehigher-speed path includes a satellite link.
 62. A method according toclaim 61, wherein the loss of receive of signal is caused by rainattenuation or satellite antenna misalignment.
 63. A method according toclaim 49, wherein said selecting step selects one of the lower-speedpath and the higher-speed path in accordance with malfunction of thehigher-speed path.
 64. A method according to claim 49, wherein saidselecting step selects one of the lower-speed path and the higher-speedpath in accordance with congestion of the higher-speed path. 65.Computer-executable code for use with a system comprising (i) a sourceapparatus coupled to a network and (ii) an apparatus for receiving datafrom the source apparatus, the apparatus for receiving data beingcapable of being coupled to the network by a lower-speed path or ahigher-speed path, said computer-executable program being effectingsteps comprising: selecting one of the lower-speed path and thehigher-speed path for transmission of data from the source apparatus tothe apparatus for receiving data, wherein said selecting step selectsone of the lower-speed path and the higher-speed path in accordance withone or more of: (a) malfunction of the higher-speed path, and (b)congestion of the higher-speed path, wherein said selecting step selectsone of the lower-speed path and the higher-speed path for transmissionof data from the source apparatus to the apparatus for receiving data byselectively modifying a data packet.
 66. Computer-executable codeaccording to claim 65, wherein said selecting step selectively modifiesthe data packet by selectively modifying an address field of the datapacket.
 67. Computer-executable code according to claim 66, wherein saidselecting step selectively modifies the data packet by selectivelymodifying an IP address of the data packet.
 68. Computer-executable codeaccording to claim 67, wherein said selecting step selectively modifiesthe data packet by selectively modifying a source IP address of the datapacket.
 69. Computer-executable code according to claim 67, wherein saidselecting step selectively modifies the data packet by selectivelymodifying a destination IP address of the data packet. 70.Computer-executable code according to claim 65, wherein the higher-speedpath includes a satellite link and the lower-speed path includes aterrestrial link.
 71. Computer-executable code according to claim 65,wherein the higher-speed path includes a cable television link. 72.Computer-executable code according to claim 65, wherein said selectingstep is effected by the apparatus for receiving data. 73.Computer-executable code according to claim 72, wherein said selectingstep selects one of the lower-speed path and the higher-speed path inresponse to detection by the apparatus for receiving data of loss ofreceive of signal on the higher-speed path.
 74. Computer-executable codeaccording to claim 73, wherein the higher-speed path includes asatellite link.
 75. Computer-executable code according to claim 74,wherein the loss of receive of signal is caused by rain attenuation orsatellite antenna misalignment.
 76. Computer-executable code accordingto claim 65, wherein said selecting step selects one of the lower-speedpath and the higher-speed path in response to detection of loss ofreceive of signal on the high-speed path.
 77. Computer-executable codeaccording to claim 76, wherein the higher-speed path includes asatellite link.
 78. Computer-executable code according to claim 77,wherein the loss of receive of signal is caused by rain attenuation orsatellite antenna misalignment.
 79. Computer-executable code accordingto claim 65, wherein said selecting step selects one of the lower-speedpath and the higher-speed path in accordance with malfunction of thehigher-speed path.
 80. Computer-executable code according to claim 65,wherein said selecting step selects one of the lower-speed path and thehigher-speed path in accordance with congestion of the higher-speedpath.